草庐IT

Java HotSpot 枚举开销

全部标签

java - 在 Java 中使用枚举用动物对象填充动物园对象

由于习惯了老式的过程式C编程,我现在正在学习Java,并且可能很明显地认识到难点在于设计,而不是语法。关于如何填充我的动物园,我花了几个小时来讨论一个又一个的想法:我有一个classZoo和一个抽象的classAnimal。Animal有几个非抽象子类,称为Lion、Giraffe、Zebra、Penguin等。一个Zoo对象将恰好包含Animal的每个子类的一个实例,并且每个此类实例都包含对其所属的唯一Zoo实例的引用。我想按特定顺序遍历动物园中的动物(比如您沿着人行道行走),并在字典中查找动物园中的动物。更准确地说,在某个时候我将解析一个包含动物名称的文本文件(例如,对于字符串“L

java - 在 JSP EL 枚举值总是空的

这个问题在这里已经有了答案:HowtoreferenceconstantsinEL?(12个答案)关闭6年前。当试图让EL条件起作用时,我发现枚举值被完全忽略了。在我看来,这似乎与规范相反。empty令我惊讶的是,这些都评估为空。为什么不识别Enum类?这是在当前稳定的Tomcat实例中发生的。这可能是类路径问题吗?Enum在Controller代码中成功使用,但在JSP中没有其他地方使用。它在部署的lib目录中的jar中提供。更新:我的目的是将提供的整数与枚举的属性进行比较,如下所示:FOOBARFAIL不幸的是,无法更改正在检查的值并将保持为整数。枚举如下(简化):publicen

java - 我可以使用 EL 从 JSP 访问枚举类的值吗?

我有一个枚举类USState。我想遍历JSP中的状态。是否可以在不首先将这样的列表设置为属性的情况下访问USState的列表?似乎像枚举这样静态的东西应该始终可用,但我不知道该怎么做。这是我要找的:(工作除外)${state} 最佳答案 您也可以考虑将其包装在一个Javabean中,如下所示:packagecom.stackoverflow.q2240722;publicclassStateBean{publicState[]getValues(){returnState.values();}}这样可以通过访问:SOquestion

具有不同值的 Java 相同枚举

我使用枚举来定义可以添加到产品中的几个变体(自定义Logo、颜色等)。每个变体都有多个选项(ID、两种语言的描述、在流程中进行更改的位置、价格等)。它具有进一步定义变化(例如应使用哪种颜色)或覆盖某些选项的方法。一种产品可以在ArrayList中存储零个、一个或多个变体。此外,某个变体可以多次应用于一个产品。只要我只使用一次变体,一切都很好。但如果我多次使用它,似乎所有选项都相同。示例代码:测试类.java:importjava.util.ArrayList;publicclassTestClass{publicstaticvoidmain(String[]args){ArrayLis

java - 是否有类似 C 的方法从 Java 中的枚举中获取项目编号?

也许这是一个简单的基础问题有一个枚举publicenumTK{ID,GROUP,DATA,FAIL;}我可以得到订单号,例如ID=0,GROUP=2,DATA=3,FAIL=4吗?这是一种方法,但是很奇怪而且很长!=SpublicenumTK{ID(0),GROUP(1),DATA(2),FAIL(3);intnum;TK(intn){this.num=n;}publicintget(){returnnum;}};为了获取数字,所以我写了TK.ID.get()、TK.GROUP.get()等...我不喜欢这样有更好的方法吗?(C枚举,C宏..我想你们俩)谢谢

java - 在 switch-case 语句中使用枚举的序数值

对于我的项目,我使用枚举,我需要实现switch-case语句,其中检查特定枚举值的序号,如下所示:switch(variable){caseMyEnum.A.ordinal():returntrue;caseMyEnum.B.ordinal():returntrue;default:returnfalse;}注意:返回值只是一个例子。不幸的是,Eclipse(我使用的是1.6JDK)给出了我的编译错误“case表达式必须是常量表达式”。我应该怎么办?除了静态查找表,还有其他方法吗,在此处描述:Convertfromenumordinaltoenumtype?

Java 枚举 - 无法在定义之前引用字段

我有一个像下面这样的枚举,但Eclipse说每个对立对的第一个定义中有错误。publicenumBaz{yin(yang),//Cannotreferenceafieldbeforeitisdefinedyang(yin),good(evil),//Cannotreferenceafieldbeforeitisdefinedevil(good);publicfinalBazopposite;Baz(Bazopposite){this.opposite=opposite;}}我想要完成的是能够使用Baz.something.opposite获取Baz.something的opposite

java - 枚举,在开关盒中使用

我定义了一个枚举,它包含方法返回类型,如“String”、Float、List、Double等。我将在switchcase语句中使用它。例如我的枚举是publicenumMethodType{DOUBLE,LIST,STRING,ARRAYLIST,FLOAT,LONG;}在属性文件中,我有如下键值对。Test1=字符串Test2=双在我的代码中,我正在获取key的值。我需要使用SwitchCase中的VALUE来确定类型,并基于此我必须实现一些逻辑。例如这样的东西switch(MethodType.DOUBLE){caseDOUBLE://Dobulelogic}有人可以帮我实现这个

java - 在 Java 中枚举正则表达式的可能匹配项

出于测试目的,我想在Java中枚举有限正则表达式的所有可能值。对于某些上下文,我有一个正则表达式,用于匹配单词中允许的颜色值。以下是它的简化版本作为示例:(white|black)|((light|dark))?(red|green|blue|gray)我想创建一个单元测试来枚举所有这些值并将它们中的每一个传递给我的实用程序类,该实用程序类从这些值生成一个Color对象,这样如果我更改正则表达式,我的如果发生错误(即不支持新的颜色值),单元测试将失败。我知道枚举是可能的,当然(seethisquestion),但是是否有一个现有的Java库可以枚举正则表达式的所有可能匹配项?编辑:我已

java - 具有属性的 UML 建模枚举

我想用具有一个或多个属性的Java枚举(enum)创建一个UML图,但我对如何做感到困惑。例如,枚举可以这样声明:publicenumEnumeration_type{LITERAL_A("attr1_value",attr2_value,attr3_value),LITERAL_B("attr1_value",attr2_value,attr3_value);finalStringattr1;finaltype_1attr2=initial_value_1;finaltype_2attr3;Enumeration_type(Stringattr1,type_1attr2,type_2